package org.aspire.math.geom.event;

/******************************************************************************
 * Provides an interface that allows an object to be alerted when its location
 * data has been changed. The alert contains information on what data (x or y)
 * has been changed and how much has changed.
 * 
 * @author JPACarabuena
 *****************************************************************************/
public interface PointListener {

	// ========================================================================
	// Final Fields
	// ========================================================================
	
	// ========================================================================
	// Getters & Setters
	// ========================================================================
	
	// ========================================================================
	// Override Methods
	// ========================================================================
	
	// ========================================================================
	// Methods
	// ========================================================================
	
	/**************************************************************************
	 * The location data has increased in value.
	 * 
	 * @param event	the event generated by the increase in location.
	 *************************************************************************/
	public void locationIncreased(PointEvent event);
	
	/**************************************************************************
	 * The location data has decreased in value.
	 * 
	 * @param event the event generated by the decrease in location.
	 *************************************************************************/
	public void locationDecreased(PointEvent event);
	
	/**************************************************************************
	 * The location data has both increased and decreased in value. Either the
	 * x-coordinate has increased and the y-coordinate decreased or vice-versa.
	 * 
	 * @param event	the event generated by the change in location.
	 *************************************************************************/
	public void locationChanged(PointEvent event);
	
	// ========================================================================
	// Inner & Anonymous Classes
	// ========================================================================
}